package com.zzt.authlog.common;

/**
 * 内容摘要：基本队列对象接口，汇总队列类必须提供的对外方法
 */
public interface IQueue
{

    /**
     * 设置队列的大小
     */
    public void setMaxSize(int size);

    /**
     * 设置队列的大小
     */
    public int getMaxSize();

    /**
     * 注册一个监听队列，本队列对象在出队的时候，将传递结所有注册的队列
     */
    public void registListener(IQueue queue);

    /**
     * 启动队列处理线程
     */
    public void startThread();

    /**
     * 停止队列处理线程
     */
    public void stopThread();

    /**
     * 向将业务对象加入到处理队列中，重载基类的入队处理方法
     */
    public void putObject(Object obj);

    /**
     * 内容摘要：处理一个队列对象，重载基类的出队对象处理方法
     * @param  Object 队列中的出队对象
     */
    public void popObject(Object obj);

}
